/*
 * @Descripttion: 用户模块pinia
 * @Author: 银河以北
 * @Date: 2024-04-27 17:32:46
 * @LastEditors: 银河以北
 * @LastEditTime: 2024-08-28 21:04:20
 */

// 导入pinia
import { defineStore } from 'pinia'

// 导入接口
import { login, getUserInfo } from '@/api/login'

// 导入设置token函数
import { setToken } from '@/utils/auth'

export const useUserStore = defineStore('user', {
    state: () => {
        return {
            // 用户信息
            userInfo: {
                name: ""
            },
            token: ''
        }
    },

    actions: {
        // 登录
        Login(data) {
            return new Promise((resolve, reject) => {
                login(data).then(res => {
                    if (res.code !== 200) {
                        resolve(false)
                        return
                    }
                    const token = res.data

                    // pinia赋值
                    this.token = token

                    // 本地设置token
                    setToken(token)

                    // 登录成功
                    resolve(true)
                }).catch(err => {
                    reject(err)
                })
            })
        },

        // 获取用户信息
        UserInfo() {
            return new Promise((resolve, reject) => {
                getUserInfo().then(res => {
                    if (res) {
                        const result = res.data
                        this.userInfo = result
                        resolve(res)
                    } else {
                        // reject(new Error('获取用户信息失败!'))
                    }
                }).catch(error => {
                    // reject(error)
                })
            })
        }
    }
})

